%% Die beliebten Umlaute und Sonderzeichen des Deutschen k nnen auf %% dem AMIGA in lesbarer Form eingegeben werden. \input ecma94.tex %% Um auf die internen Befehle von "‘german.sty"’ zugreifen und %% eigene Makros in dieser Form definieren zu k nnen, wird der %% Klammeraffe aktiviert. Sein bisheriger Wert wird gesichert. \chardef\atcode=\catcode‘\ \catcode‘\1=1 % \makeatletter %% Da einige Dimensionen und Font-Gr en in absoluten Ma en angegeben %% sind, sollte der Vergr erungsfaktor nicht ver ndert werden. \magnification=\magstep1 %% Erweiterte Zeichens tze f r die verwendeten Macros. Weitere %% Fonts k nnen nach eigenem Geschmack an dieser Stelle hinzugef %% werden. Entfernen sollte man von dieser Liste aber nichts. \font\mc=cmr9 % kleine Schriften f r Versalien \font\sc=cmr8 % nicht mit Caps Small Caps zu verwechseln \font\csc=cmcsc10 \font\footboldfont=cmssbx10 at 8truept % f r die kleinen Textteile \font\footfont=cmss8 at 8truept % werden kleine Schriften gew \font\footpound=cmitt10 scaled 800 % das Pfundzeichen \font\largeheadfont=cmssu30 % f r den Namen im Kopfteil \font\smallheadfont=cmr8 at 8truept % f r die Adresse im Kopfteil \font\symbols=wasy8 at 8truept % das Telefonzeichen %% Vorsorglich definiere ich einige Macros f r spezielle %% Objektbezeichnungen, die nicht ganz trivial sind. \newbox\PPbox \setbox\PPbox=\hbox{\kern.5pt\raise1pt\hbox{\sevenrm+\kern-1pt+\kern.5pt \def\PP{\copy\PPbox \def\Cpp{{\mc C\PP\spacefactor1000 %% Weitere Macros, die f r einige Feinheiten bei den Telefonnummern %% und der Bankverbindung dienen. Au erdem werden Makros zur Verf %% gestellt, mit denen das Rechnungsdatum berschrieben werden kann sowie %% Auftragsdatum und Kundenkennzeichen importiert werden k nnen. \def\ts{\thinspace \def\pushup#1{\leavevmode \raise.16ex\hbox{#1 \def\BLZ#1{\pushup{(\bankcodename\ #1\pushup{) \def\date#1{\def\@date{#1} \def\@date{\today} \def\orderdate#1{\def\order@date{\printformatteddate{#1} \def\order@date{} \def\yourref#1{\def\your@ref{#1} \def\your@ref{} %% Der Seitenspiegel. Es d rfte ziemlich einsichtig sein, was hier %% passiert. Wie beim Vergr erungsfaktor gilt, hier m glichst nichts %% zu ndern. \tolerance=500 \raggedbottom \interlinepenalty=1000 \hsize=16truecm \vsize=21.6truecm \hoffset=0cm \voffset=24pt \advance\vsize by-\voffset \parindent=0pt \parskip=2pt plus1pt minus.5pt %% Kopf- und Fu zeilen: Auf der ersten Seite besteht der Kopf der %% Rechnung aus der eigenen Firmenanschrift sowie den Kundendaten. %% Auf Folgeseiten erscheint eine kleine Kopfzeile. Die Fu zeile %% gibt auf allen Seiten die Telefonnummer und die Bankverbindung an. %% Dazu kommt auf allen Seiten der Hinweis auf die Folgeseiten, nur %% auf der letzten Seite der Rechnung erscheint eine Dankesformel. \newcount\nextpage % die Nummer der Folgeseite. \newskip\footlineskip % zwischen dem bertrag oder der Endsumme und \footlineskip=2cm % dem Rechnungsfu bleibt Platz f r Textzeilen. %% Dieser Teil ist auf spezielle W nsche anzupassen. "‘\faxnumber"’ %% und "‘\myref"’ d rfen auch weggelassen werden. Gegebenenfalls %% sind weitere Makros zu definieren, zum Beispiel wenn ein zweites %% Bankkonto anzugeben ist. \def\bankaccount#1{\def\bank@account{#1} \def\bank@account{} \def\phonenumber#1{\def\phone@number{#1} \def\phone@number{} \def\faxnumber#1{\def\fax@number{#1} \def\fax@number{} \def\myref#1{\def\my@ref{#1} \def\my@ref{} \def\company#1{\def\c@mp@ny{#1} \def\street#1{\def\str@t{#1 \def\city#1{\def\c@ty{#1} \def\owner#1{\def\@wner{#1} \bankaccount{Kreditinstitut \BLZ{Bankleitzahl\ Kontonummer% LOCAL \phonenumber{\pushup{(Vorwahl\pushup{) Durchwahl% LOCAL \faxnumber{\pushup{(Vorwahl\pushup{) Durchwahl% LOCAL \myref{Unsere Zeichen% LOCAL \company{Firmenname% LOCAL \street{Stra{\sse% LOCAL \city{Ort% LOCAL \owner{Inhaber% LOCAL %% Auf Briefen soll die Kopfzeile auf Folgeseiten nur die %% Anrede, das Datum und die Seitennummer enthalten. %% Das Entwurf-Copyright wird bei Briefen unterdr \newif\ifinvoice \headline={\ifnum\pageno>1 \tenrm\headtoname\ \addressee\hfil% \ifinvoice\invoicename% \ifnum\invoicenumber>0\ \the\invoicenumber\fi\ \ofname\ \fi% \@date\hfil\pagename\ \folio \else\hfil\fi \footline={\ifnum\pageno>0 \vbox{\null\vbox to \the\footlineskip{\vss\footlinetext\vss \hrule\baselineskip=9truept\tabskip=0pt \halign to\hsize{\footfont#\hfil\tabskip=0pt plus 1fil&% \footfont#\hfil&\footfont#\hfil\tabskip=0pt\cr \noalign{\hrule height4truept width0pt \footboldfont\phonename& \ifx\fax@number\empty\null\else \footboldfont\faxname\fi&\footboldfont\bankname\cr \noalign{\hrule height4truept width0pt \phone@number& \ifx\fax@number\empty\null\else \fax@number\fi&\bank@account\cr\fi %% Mode switches. Dieser Teil ist noch fast original aus %% "‘letterformat.tex"’. \def\beginlinemode{\endmode \begingroup\obeylines\def\endmode{\par\endgroup \def\beginparmode{\endmode \begingroup\parskip=\medskipamount \def\endmode{\par\endgroup \let\endmode=\par \def\endinvoice{\endmode\supereject %% Erzeuge die Empf ngeradresse durch zeilenweise Eingabe. Weicht %% der Anredetext auf den Folgeseiten von der ersten Zeile der %% Empf ngeradresse ab, so kann der Text berschrieben werden. \newdimen\longindentation \longindentation=11truecm \newbox\theaddress \def\address{\beginlinemode\getaddress {\obeylines\gdef\getaddress #1 {#1\gdef\addressee{#2% \global\setbox\theaddress=\vbox to 3.5cm\bgroup\vss\raggedright% \hsize=\longindentation \everypar{\hangindent2em#2 \def\endmode{\vss\egroup\endgroup \copy\theaddress \bigskip\bigskip \def\toname#1{\gdef\addressee{#1 %% Auf der ersten Rechnungsseite wird ein allgemeiner Textteil mit %% Kundenangaben angebracht. Anschlie end folgt, genau wie auf den %% Folgeseiten, die Tabelle der Rechnungspositionen. Daf r ist das %% Makro ‘\body’ zust ndig. %% Will man mit dem ‘invoice.tex’ Programm auch freie Texte, wie %% zum Beispiel Briefe schreiben, so steht ‘\textbody’ zur Verf gung. \def\body#1{\beginparmode\global\invoicetrue \ifnum\pageno>1\positions#1 \else\bodyhead\positions#1\fi \def\textbody{\beginparmode\global\invoicefalse\hrule\vskip\bigskipamount \def\closing{\beginlinemode\getclosing {\obeylines\gdef\getclosing #1 {#1\nobreak\bigskip \leftskip=.85\longindentation #2 \nobreak\vskip5\bigskipamount % space for signature \def {\endgraf\nobreak \def\annotations{\beginlinemode\def\par{\endgraf\nobreak\obeylines\par \def\ps{\beginparmode\nobreak \interlinepenalty5000\def\par{\endgraf\penalty5000 \def\begintext{\gdef\footlinetext{\null\invoice \def\endtext{\endinvoice %% Der Rechnungskopf enth lt neben dem Firmenlogo auch noch die %% Absendeadresse f r Fensterumschl ge und das aktuelle Datum. r Briefumschl ge mit Klarsichtfenster wird die eigene % Anschrift ber der Kundenanschrift wiederholt. \def\sender{\c@mp@ny, \str@t, \c@ty% LOCAL % Beim Bedrucken von Briefumschl gen wird eine besondere Form % der eigenen Anschrift gew \def\returnaddress{\c@mp@ny\par\@wner\par\str@t, \c@ty% LOCAL % Als Teil der Firmenanschrift wird der Titel und die % Telefonnummer angegeben. \def\sendingaddress{\@wner\par{\symbols\char’007\ \phone@number\par% LOCAL % Unter dem Firmennamen bleibt Platz f r eine kurze Beschreibung \def\companytext{Firmenbeschreibung Zeile 1\par Firmenbeschreibung Zeile 2% LOCAL \def\invoice{\pageno=1 \def\addressee{ \invoicelogo \line{\hbox to\longindentation{\vbox{\footfont\baselineskip9truept \hsize=\longindentation\companytext\hfill\kern-\longindentation \vbox{\smallheadfont\baselineskip9truept \leftskip=\longindentation\sendingaddress% \bigskip\bigskip \line{\hbox to\longindentation{\underbar{\footfont\sender \hfil\rm\@date\hfil %% Beim derzeitigen Format enth lt das Firmenlogo lediglich meine %% Anschrift in der Form von ‘letterformat.tex’. \def\invoicelogo{\vglue-1.6\voffset \hbox{\hbox to\longindentation{\smash{\largeheadfont\c@mp@ny\hfil% LOCAL \kern-\longindentation \vbox{\smallheadfont\baselineskip9truept \leftskip=\longindentation\str@t\par\c@ty% LOCAL \vskip2truept\hrule\vskip4truept %% Um dieses Format nicht nur f r Rechnungen benutzen zu k nnen, %% sondern auch f r Lieferscheine, Bestellungen, Auftr ge und Angebote %% wird der numerische Schalter "‘\invoiceswitch"’ eingef hrt. Durch %% Setzen mit den Werten 0, 1, 2, 3 oder 4 werden entsprechende Bezeichnungen %% im Rechnungskopf und auf den Folgeseiten verwendet. Als Standard %% ist "‘Rechnung"’ (0) vorgegeben. r Referenzzwecke wird die Kundennummer und das Auftrags- %% beziehungsweise Bestelldatum angegeben sowie das Wort "‘Rechnung"’ %% zusammen mit der Rechnungsnummer. Diese wird durch das numerische %% Argument des Befehles "‘\invoice"’ bei dessen Aufruf gesetzt. \newcount\invoiceswitch \invoiceswitch=0 \newcount\invoicenumber \invoicenumber=0 \newcount\customernumber \customernumber=0 \newskip\blocklineskip \newskip\positionskip \blocklineskip=.5cm \positionskip=.5cm \newcount\entry \entry=0 \def\bodyhead{\hrule\vskip\blocklineskip \line{\ifnum\invoicenumber>0\vbox{\hbox{\footfont\numbername\hfil \hbox{\number\invoiceyear/\the\invoicenumber\hfil\hfil\advance\entry1\fi \ifnum\customernumber>0\vbox{\hbox{\footfont\customername\hfil \hbox{\the\customernumber\hfil\hfil\advance\entry1\fi \ifx\order@date\empty\null\else\advance\entry1 \vbox{\hbox{\footfont\ordername\hfil \hbox{\order@date\hfil\hfil\fi \ifx\your@ref\empty\null\else\advance\entry1 \vbox{\hbox{\footfont\yourrefname\hfil \hbox{\your@ref\hfil\hfil\fi \ifx\my@ref\empty\null\else\ifcase\entry\hfil\fi \vbox{\hbox{\footfont\myrefname\hfil \hbox{\my@ref\hfil\fi\bigskip \line{\hfil\underbar{\bf\invoicename\hfil \vskip\blocklineskip\hrule\vskip\positionskip \def\texthead{\vskip-\bigskipamount\vskip\blocklineskip \line{\ifx\order@date\empty\null\else \vbox{\hbox{\footfont\messagename\hfil \hbox{\order@date\hfil\hfil\advance\entry1\fi \ifx\your@ref\empty\null\else\advance\entry1 \vbox{\hbox{\footfont\yourrefname\hfil \hbox{\your@ref\hfil\hfil\fi \ifx\my@ref\empty\null\else\ifcase\entry\hfil\fi \vbox{\hbox{\footfont\myrefname\hfil \hbox{\my@ref\hfil\fi\bigskip %% Tabelle f r die Rechnungspositionen. S mtliche Rechnungszeilen %% einer Seite werden zusammen an dieses Makro bergeben und tabellarisch %% formatiert. Als "‘Front End"’ kann ein geeignetes Rechnungsprogramm %% dienen, das jede Zeile durch Eintrag in das Makro "‘\singleposition"’ %% erzeugt. Dieses Makro wandelt die vorgegebenen Werte in das von %% "‘\positions"’ erwartete Format um, wobei gleichzeitig eine %% Anpassung an die jeweils verwendete Sprache erfolgt. \def\positions#1{\tabskip=0pt\halign to \hsize{ \strut##\hfil\tabskip=1em plus 1fil& % die Artikelbezeichnung \hfil##\hskip.5em&% die Mengenangabe \hfil##&% der Einzelpreis \hfil##&% der Positionspreis v o r 15% Mehrwertsteuer \hfil##\tabskip=0pt\cr % der Positionspreis v o r 7% Mehrwertsteuer \footfont\designationname&\omit\footfont\quantityname&% \footfont\retailname&\footfont\pricename~I&\footfont\pricename~II\cr \noalign{\smallskip #1\crcr % die eigentlichen Rechnungspositionen \def\singleposition|#1|#2|#3|#4|#5|#6|#7|#8|#9|{ #1& % die Artikelbezeichnung \printformattedamount{#2&% die Mengenangabe \printformattedamount{#3&% der Einzelpreis \printformattedamount{#4&% der Positionspreis v o r 15% Mehrwertsteuer \printformattedamount{#5\cr% der Positionspreis v o r 7% Mehrwertsteuer %% Gesamtsummen und Mehrwertsteuer. Die Mehrwertsteuer mu bereits %% errechnet werden. Die beiden m glichen Steuers tze werden mit den %% Werten von 1993 vorbelegt. Eine nderung ist durch Aufruf der %% Makros "‘\vatrate[I|II]"’ m glich. Am Rechnungsende werden die %% Nettosummen und Mehrwertsteuerbetr ge getrennt aufgef hrt und %% der Rechnungsgesamtbetrag ausgegeben. Dieser Ausgabeteil wird %% oben und unten durch Linien eingefa t. Im Fu bereich wird eine %% Dankesformel unter der Rechnung angebracht. Passen die Positionen %% einer Rechnung nicht auf eine Seite, so erfolgt die Ausgabe von bertragsseiten und entsprechender Bl cke bei den getrennten %% Rechnungsseiten sowie ein Hinweis auf die Folgeseite im Fu bereich. \def\vatrateI#1{\def\vat@rate@I{#1} \def\vat@rate@I{15} % Normaler Mehrwertsteuersatz (Hard- und Software) LOCAL \def\vatrateII#1{\def\vat@rate@II{#1} \def\vat@rate@II{7} % Erm igter Mehrwertsteuersatz (B cher) LOCAL \def\\{\hfil\break \def\setthanksname#1{\def\@thanks@name{\vbox{\hsize=8cm \baselineskip=\normalbaselineskip#1} \def\@thanks@name{\thanksname} \def\totals|#1|#2|#3|#4|#5|{\gdef\footlinetext{\hfil\@thanks@name\hfil \vfill\hrule\vskip\blocklineskip\tabskip=0pt\halign to \hsize{ \strut##\hfil\tabskip=1em plus 1fil&% "‘Summe I und II"’ \hfil##&% Betrag Summe I und Betrag Summe II \hfil## \%&% "‘15%"’ und "‘7%"’ \hfil##&% Mehrwertsteuerbetr \hfil{\bf##\tabskip=0pt\cr % "‘Rechnungsbetrag"’ und sein Wert \footfont\totalname&\footfont\currencyname& \omit\footfont\vatname&\footfont\currencyname& \footfont\amountname\ \currencyname\cr \pricename~I&\printformattedamount{#1& \printformattedamount{\vat@rate@I&\printformattedamount{#3&\cr \pricename~II&\printformattedamount{#2& \printformattedamount{\vat@rate@II&\printformattedamount{#4& \underbar{\printformattedamount{#5\cr \vskip\blocklineskip\hrule \def\subtotals|#1|#2|#3|#4|#5|{\gdef\footlinetext{\ifnum\pageno>0 \nextpage=\pageno \advance\nextpage by 1\hfil\continuename\ \the\nextpage\hfil\fi \vfill\hrule\vskip\blocklineskip\tabskip=0pt\halign to \hsize{ \strut##\hfil\tabskip=1em plus 1fil&% "‘Zwischensumme I und II"’ \hfil##&% Betrag Zwischensumme I und II \hfil## \%&% "‘15%"’ und "‘7%"’ \hfil##&% Mehrwertsteuerbetr \hfil{\bf##\tabskip=0pt\crcr % "‘ bertrag"’ und sein Wert \footfont\subtotalname&\footfont\currencyname& \omit\footfont\vatname&\footfont\currencyname& \footfont\carryovername\ \currencyname\cr \pricename~I&\printformattedamount{#1& \printformattedamount{\vat@rate@I&\printformattedamount{#3&\cr \pricename~II&\printformattedamount{#2& \printformattedamount{\vat@rate@II&\printformattedamount{#4& \underbar{\printformattedamount{#5\cr \noalign{\vskip\blocklineskip\hrule\eject\hrule\vskip\blocklineskip \footfont\subtotalname&\footfont\currencyname& \omit\footfont\vatname&\footfont\currencyname& \footfont\carryovername\ \currencyname\cr \pricename~I&\printformattedamount{#1& \printformattedamount{\vat@rate@I&\printformattedamount{#3&\cr \pricename~II&\printformattedamount{#2& \printformattedamount{\vat@rate@II&\printformattedamount{#4& \underbar{\printformattedamount{#5\cr \vskip\blocklineskip\hrule\vskip\positionskip %% In Anlehnung an das Verfahren aus "‘german.sty"’ werden zahlreiche %% verwendete Begriffe des Rechnungsformulars in mehreren Sprachen %% zur Verf gung gestellt. Vorl ufig sind dies Deutsch, britisches %% und amerikanisches Englisch sowie Franz sisch. Andere Sprachen %% lassen sich in gleicher Weise einbauen. Dazu ist die Definition %% eines Makros "‘\invoice<Sprache>"’ vorzunehmen, wobei <Sprache> %% dem \languagecount entspricht. \def\invoicegerman{% \def\amountname{Rechnungsbetrag% \def\bankname{Bank% \def\bankcodename{BLZ% \def\carryovername{\"Ubertrag% \def\continuename{Fortsetzung auf Seite% \def\currencyname{DM% \def\customername{Kundennummer% \def\designationname{Bezeichnung% \def\artnumname{Art.-Nr.% \def\faxname{Telefax% \def\fracsep{,% \def\invoicename{\ifcase\invoiceswitch Rechnung\or Lieferschein\or Bestellung\or Auftragsbest\"atigung\or Angebot\fi% \def\messagename{Ihre Nachricht vom% \def\millsep{.% \def\myrefname{Unsere Zeichen% \def\numbername{\ifcase\invoiceswitch Rechnungsnummer\or Lieferscheinnummer\or Bestellungsnummer\or Auftragsbest\"atigung\or Angebotsnummer\fi% \def\ofname{vom% \def\ordername{Ihre Bestellung vom% \def\phonename{Telefon% \def\pricename{Preis% \def\quantityname{Anzahl% \def\retailname{Einzelpreis% \def\sumname{Gesamtpreis% \def\subtotalname{Zwischensumme% \def\thanksname{Wir danken f\"ur Ihren Auftrag% \def\thousep{.% \def\totalname{Summe% \def\vatname{Mehrwertsteuer% \def\yourrefname{Ihre Zeichen% \def\invoiceenglish{% \def\amountname{Invoice amount% \def\bankname{Bank% \def\bankcodename{BCN% \def\carryovername{Carry over% \def\continuename{To be continued on page% \def\currencyname{{\footpound\$% \def\customername{Customer Number% \def\designationname{Designation% \def\artnumname{Art.-Nr.% \def\faxname{Fax number% \def\fracsep{.% \def\invoicename{\ifcase\invoiceswitch Invoice\or Delivery note\or Order\or Confirmation of order\or Offer\fi% \def\messagename{Your message of% \def\millsep{,% \def\myrefname{Our reference% \def\numbername{\ifcase\invoiceswitch Number of invoice\or Number of delivery\or Number of order\or Number of confirmation\or Number of offer\fi% \def\ofname{of% \def\ordername{Your order of% \def\phonename{Phone number% \def\pricename{Price% \def\quantityname{Quantity% \def\retailname{Retail price% \def\sumname{Gesamtpreis% \def\subtotalname{Subtotal% \def\thanksname{Thank you for choosing us% \def\thousep{,% \def\totalname{Total% \def\vatname{Value added tax% \def\yourrefname{Your reference% \def\invoiceUSenglish{% \def\amountname{Invoice amount% \def\bankname{Bank% \def\bankcodename{BCN% \def\carryovername{Carry over% \def\continuename{To be continued on page% \def\currencyname{\$% \def\customername{Customer number% \def\designationname{Designation% \def\artnumname{Art.-Nr.% \def\faxname{Fax number% \def\fracsep{.% \def\invoicename{\ifcase\invoiceswitch Invoice\or Delivery note\or Order\or Confirmation of order\or Offer\fi% \def\messagename{Your message of% \def\millsep{,% \def\myrefname{Our reference% \def\numbername{\ifcase\invoiceswitch Number of invoice\or Number of delivery\or Number of order\or Number of confirmation\or Number of offer\fi% \def\ofname{of% \def\ordername{Your order of% \def\phonename{Phone number% \def\pricename{Price% \def\quantityname{Quantity% \def\retailname{Retail price% \def\sumname{Gesamtpreis% \def\subtotalname{Subtotal% \def\thanksname{Thank you for choosing us% \def\thousep{,% \def\totalname{Total value% \def\vatname{Value added tax% \def\yourrefname{Your reference% \def\invoicefrench{% \def\amountname{Somme de facture% \def\bankname{Banque% \def\bankcodename{Code de banque% \def\carryovername{Report% \def\continuename{Continu\’e en page% \def\currencyname{FF% \def\customername{Client% \def\designationname{D\’esignation% \def\artnumname{Art.-Nr.% \def\faxname{T\’el\’efax% \def\fracsep{,% \def\invoicename{\ifcase\invoiceswitch Facture\or Bulletin de livraison\or Commande\or Confirmation de commande\or Offre\fi% \def\messagename{Votre lettre du% \def\millsep{ % \def\myrefname{Notre r\’ef\’erence% \def\numbername{\ifcase\invoiceswitch Nombre de facture\or Nombre de bulletin de livraison\or Nombre du commande\or Nombre de confirmation de commande\or Nombre d’offre\fi% \def\ofname{du% \def\ordername{Votre commande du% \def\phonename{T\’el\’ephone% \def\pricename{Prix% \def\quantityname{Quantit\’e% \def\retailname{Prix unitaire% \def\sumname{Gesamtpreis% \def\subtotalname{Montant partiel% \def\thanksname{Nous vous remercions pour votre commande% \def\thousep{ % \def\totalname{Montant total% \def\vatname{Taxe sur la valeur ajout\’ee% \def\yourrefname{Votre r\’ef\’erence% %% Zur formatierten Ausgabe von Betr gen beliebiger W hrungseinheiten %% geh rt selbstverst ndlich auch die richtige Verwendung von %% Trennsymbolen wie Komma und Punkt. S mtliche Rechnungsbetr %% werden vom FrontEnd als Zahlenkette in Hundertsteleinheiten erwartet. \newcount\m \newcount\fractions \newcount\units \newcount\thousands \newcount\millions \def\gobbleone1{ \def\printthreedigits{\advance\m by 1000 \expandafter\gobbleone\number\m \advance\m by -1000 \def\printtwodigits{\advance\m by 100 \expandafter\gobbleone\number\m \advance\m by -100 \def\printformattedamount#1{% \m=#1 \ifnum\m<0\def\sign{$-$\m=-\m\else\def\sign{\fi \fractions=\m \divide\m by 100 \multiply\m by 100 \advance\fractions by -\m \units=\m \divide\units by 100 \divide\m by 100000 \multiply\m by 1000 \advance\units by -\m \thousands=\m \divide\thousands by 1000 \divide\m by 1000000 \multiply \m by 1000 \advance\thousands by -\m \millions=\m \divide\millions by 1000 \divide\m by 1000000 \multiply \m by 1000 \advance\millions by -\m \sign% \ifnum\millions>0 \the\millions\millsep% \m=\thousands\printthreedigits\thousep% \m=\units\printthreedigits\fracsep% \else\ifnum\thousands>0 \the\thousands\thousep% \m=\units\printthreedigits\fracsep% \else\ifnum\units>0 \the\units\fracsep% \else 0\fracsep\fi\fi\fi \m=\fractions\printtwodigits hnliches gilt f r die Ausgabe des Bestell- oder Auftragsdatums, %% das stets im Format [ttmmyyyy] erwartet wird. Sollen noch weitere %% Sprachen unterst tzt werden, so mu jeweils ein Makro der Form %% "‘\Date<Sprache>"’ definiert werden, wobei <Sprache> genau dem %% \languagecount entsprechen mu \newcount\days \newcount\months \newcount\years \newcount\invoiceyear \invoiceyear=1994 \def\Month@German{\ifcase\months \or Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or Juli\or August\or September\or Oktober\or November\or Dezember\fi} \def\Dategerman{\def\printdate{\number\days.~\Month@German\space\number\years \def\Dateaustrian{\def\printdate{\number\days.~\ifnum 1=\months J\"anner\else \Month@German\fi \space\number\years \def\Month@English{\ifcase\months \or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi} \def\DateUSenglish{\def\printdate{\Month@English\space\number\days, \number\years \def\Dateenglish{\def\printdate{\number\days \ifcase\days \or st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or % 1..10 th\or th\or th\or th\or th\or th\or th\or th\or th\or th\or % 11..20 st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or % 21..30 st\fi~\Month@English \space\number\years \def\Datefrench{\def\printdate{\number\days \ifnum1=\days \/$^{\rm er$\fi \space\ifcase\months \or janvier\or f\’evrier\or mars\or avril\or mai\or juin\or juillet\or ao\^ut\or septembre\or octobre\or novembre\or d\’ecembre\fi \space\number\years \def\printformatteddate#1{\m=#1 \years=\m \divide\m by 10000 \multiply\m by 10000 \advance\years by -\m \months=\m \divide\months by 10000 \divide\m by 1000000 \multiply\m by 100 \advance\months by -\m \days=\m \divide\days by 100 \divide\m by 10000 \multiply \m by 100 \advance\days by -\m \printdate %% Will man eigene Briefumschl ge bedrucken, so benutzt man %% diesen Befehl. \def\makelabel{\endinvoice\hbox{\vrule \vbox{\hrule \kern6truept \hbox{\kern6truept\vbox to 2truein{\hsize=\longindentation \smallheadfont\baselineskip9truept\returnaddress \vss\moveright 2truein\copy\theaddress\vss% \kern6truept\kern6truept\hrule\vrule \pageno=0\vfill\eject %% Auch durch die einfache Wiederholung der Ausgabe im Fensterbrief hrt zu geeigneten Adressaufklebern. \def\invoicelabel{\endinvoice \line{\hbox to\longindentation{\underbar{\footfont\sender\hfil\hfil \copy\theaddress \pageno=0\vfill\eject %% Nur in Verbindung mit "‘german.sty"’ ist folgende Definition berhaupt sinnvoll. Es handelt sich um die Erweiterung des %% "‘\selectlanguage"’-Makros um die Begriffe f r die Rechnung %% und die eigene Datumsroutine. \def\selectlanguage#1{\protect\p@selectlanguage{% \ifnum\escapechar=\expandafter‘\string#1\empty \else \string#1\empty\fi} \expandafter\ifx\csname l@#1\endcsname\relax\else \csname invoice#1\endcsname \csname Date#1\endcsname\relax \fi %% Der Klammeraffe bekommt wieder seine alte Bedeutung. \catcode‘\\=atcode % return to previous catcode %% Dies wird zwar bereits in "‘german.sty"’ gesetzt; wegen der %% Erweiterung mu aber "‘\selectlanguage{german"’ nochmals %% aufgerufen werden. \germanTeX %% Hier endet INVOICEMACRO.TEX. \endinput


This document was generated on February 11, 2022 using texi2html 5.0.